import { createRequire } from 'module'
const require = createRequire(import.meta.url)
var mysql = require('mysql');

var connection;


// 封装的mysql使用案例
// import { mysqlObj } from './utils/mysql.js'

// mysqlObj.create().then((connect) => {
//     connect.query("select * from users;", function(error, results, fields) {
//         if(error) throw error;
//         console.log("the solutions is:", results);
//     })
// })


// 创建mysql连接
function create() {
  let p = new Promise((resolve, reject) => {
    // 初始化mysql连接所需要的参数
    connection = mysql.createConnection({
      host: '119.23.49.179',  // 远程服务器ip地址
      user: 'root',           // 远程服务器登录账号
      password: '111111',     // 远程服务器登录密码
      database: 'graduation_project'  // 要登录的远程服务器的数据库
    });
    // 开始连接
    connection.connect();
    // 设置500毫秒后返回mysql连接对象
    setTimeout(() => {
      // 如果连接变量不为空并且连接对象的状态为"authenticated"表示连接成功
      if (connection != null && connection.state == "authenticated") {
        console.log("mysql连接成功!")
        resolve(connection);
      }
    }, 500)

  })
  // 返回promise对象
  return p;
}

// 返回mysql的连接对象
function getConnection() {

  let p = new Promise((resolve, reject) => {

    try {
      if (connection != null && connection.state == "authenticated") {
        resolve(connection);
      } else {
        return create();
      }

    } catch (e) {
      console.log(e, '函数getConnection异常!')
    }
  })

  return p;
}


export const mysqlObj = {
  create: create,
  getConnection: getConnection
};

